using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entidades;
using Reglas_Negocio;

namespace Control_Evaluacion
{
    public partial class frmTablaBusquedas : Form
    {
        public empleados empleado_parametro = null;
        public frmTablaBusquedas()
        {
            InitializeComponent();
        }

        private void frmTablaBusquedas_Load(object sender, EventArgs e)
        {
            cbx_buscar_por.SelectedIndex = 0;
            BuscarPorCategoria();
        }

        private void txt_buscar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                BuscarPorCategoria();
        }

        public void BuscarPorCategoria()
        {
            if (dgv_busqueda.Columns.Count > 0)
                dgv_busqueda.Columns.Clear();

            string filtro = "";
            int _estado = 1;
            if (!chk_estado.Checked)
                _estado = 0;

            if (cbx_buscar_por.SelectedIndex == 0)
                filtro = string.Format("cedula_emp LIKE '%{0}%' AND estado_emp={1} ", txt_buscar.Text, _estado);
            
            if (cbx_buscar_por.SelectedIndex == 1)
                filtro = string.Format("nombre_emp LIKE '%{0}%' AND estado_emp={1}", txt_buscar.Text, _estado);
            if (cbx_buscar_por.SelectedIndex == 2)
                filtro = string.Format("apellido_emp LIKE '%{0}%' AND estado_emp={1}", txt_buscar.Text, _estado);
            
            dgv_busqueda.DataSource = empleadosBuilder.ListarTodos_Joins_Cat_jornada_Alias(filtro);

            dgv_busqueda.Columns[0].Width = 80;
            dgv_busqueda.Columns[2].Width = 200;

            DataGridViewCheckBoxColumn super = new DataGridViewCheckBoxColumn();
            super.HeaderText = "Reporte";
            super.Name = "c_habilita";
            super.Width = 60;
            dgv_busqueda.Columns.Insert(0, super);

            dgv_busqueda.Columns["REFERENCIA"].ReadOnly = true;
        }

        private void cbx_buscar_por_SelectedIndexChanged(object sender, EventArgs e)
        {            
            if (cbx_buscar_por.SelectedIndex >= 0)
            {
                txt_buscar.Focus();
                txt_buscar.Enabled = true;
            }
            else
                txt_buscar.Enabled = false;
        }

        private void dgv_busqueda_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {            
            //ControlempleadoDataContext obj = new ControlempleadoDataContext();
            //empleado_parametro = obj.Empleados.Single(o => o.Idemp == Convert.ToInt32(dgv_busqueda.CurrentRow.Cells["idemp"].Value));

            if (e.RowIndex != -1)
            {                
                //frmEmpleado r_ = new frmEmpleado(h.Empleados.Single(ob => ob.Idemp == Convert.ToInt32(dgv_busqueda.CurrentRow.Cells["REFERENCIA"].Value)));
                frmEmpleado r_ = new frmEmpleado(empleadosBuilder.Recuperar("id_emp = "+dgv_busqueda.CurrentRow.Cells["REFERENCIA"].Value));
                r_.ShowDialog();
                if (r_.seGuardo)
                      BuscarPorCategoria();
            }
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            frmEmpleado r_ = new frmEmpleado(null);
            r_.ShowDialog();

            if (r_.seGuardo)
                BuscarPorCategoria();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (dgv_busqueda.CurrentRow != null)
            {
                if (dgv_busqueda.CurrentRow.Index != -1)
                {
                    frmEmpleado r_ = new frmEmpleado(empleadosBuilder.Recuperar("id_emp = " + dgv_busqueda.CurrentRow.Cells["REFERENCIA"].Value));
                    r_.ShowDialog();

                    if(r_.seGuardo)
                            BuscarPorCategoria();
                }
            }
        }

        string ids_tabla()
        {
            string r = "";
            for (int i = 0; i < dgv_busqueda.RowCount; i++)
            {
                if (dgv_busqueda.Rows[i].Cells["c_habilita"].Value != null)
                {
                    DataGridViewCheckBoxCell ch = (DataGridViewCheckBoxCell)dgv_busqueda.Rows[i].Cells["c_habilita"];
                    if (ch.Value.Equals(true))                    
                        r =r+ dgv_busqueda.Rows[i].Cells["REFERENCIA"].Value + ",";                    
                }
            }
            if (r.Length > 0)
                r = r.Remove(r.Length-1,1);

            return r;
        }

        //private void btnReporte_Click(object sender, EventArgs e)
        //{
        //    string ids_recuperados = ids_tabla();
        //    if (ids_recuperados.Length > 0)
        //    {
        //        frmReportes rep = new frmReportes(ids_recuperados);
        //        rep.ShowDialog();
        //    }

        //}

        private void chk_estado_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_estado.Checked)
                chk_estado.Text = "ACTIVOS";
            else
                chk_estado.Text = "INACTIVOS";
            BuscarPorCategoria();
        }

        private void dgv_busqueda_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}
